// Decompiled with JetBrains decompiler
// Type: Communication.ICommunicationMessageBroadcaster
// Assembly: FMCommon, Version=1.0.8663.21262, Culture=neutral, PublicKeyToken=null
// MVID: 52773074-FB09-4BA0-8FA9-4782D11D6C17
// Assembly location: /Users/mac/work/RiverGame/com.rivergame.fmframework/Runtime/Plugins/FMCommon.dll

namespace Communication
{
    public interface ICommunicationMessageBroadcaster
    {
        void Broadcast(string messageSignature, object messageBody);
    }
    public interface ICommunicationMessageFactory
    {
        IRequestPacket CreateRequestMessage(object message);

        IResponsePacket CreateResponseMessage(object message);

        void RecycleRequestMessage(IRequestPacket request);

        void RecycleResponseMessage(IResponsePacket response);
    }
    public interface ICommunicationMessageHandler
    {
        void HandleMessage(object message, long responseTime);
    }
    public interface ICommunicationMessageHandlerRegistry
    {
        void RegistMessageHandler(string signatrue, ICommunicationMessageHandler handler);

        void UnRegistMessageHandler(string signature);

        ICommunicationMessageHandler GetMessageHandler(string signature);

        void Reset();
    }
    public interface ICommunicationPacket
    {
        string GetMessageSignature();

        int GetOrderID();

        string GetUniqueId();
    }
    public interface IRequestPacket : ICommunicationPacket
    {
        object GetData();
    }
    public interface IResponsePacket : ICommunicationPacket
    {
        object GetData();

        long GetResponseTime();
    }
}
